import java.util.Arrays;

public class Mystack2<E> {
    public Object[] elem;
    public int usedSize;
    public Mystack2(){
        this.elem=new  Object[10];
    }
    public void push(E val){
        if (isFull()){
            //如果满了就扩容
            elem= Arrays.copyOf(elem,2*elem.length); }
        elem[usedSize]=val;
        usedSize++;

    }
    public boolean isFull(){
        return usedSize==elem.length;}

    public E pop(){
        if (empty()){
            return null;//如果数真的是-1怎么办
        }
        E oldVal=(E) elem[usedSize-1];
        usedSize--;//变相删除，下次存数就存在被删除的pop的位置了
        return oldVal;
    }
    public E peek(){//获取栈顶值
        if (empty()){
            return null;//如果数真的是-1怎么办
        }

        return (E) elem[usedSize-1];
    }
    public boolean empty(){
        return usedSize==0;
    }
}

